package org.droidexpress;

import java.util.ArrayList;
import java.util.List;

import org.droidexpress.data.Livraison;
import org.droidexpress.data.Paquet;
import org.droidexpress.signature.Dessin;
import org.droidexpress.tools.PaquetAdapter;
import org.droidexpress.tools.SerializeClass;
import org.droidexpress.tools.SingletonPaquet;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class BonLivraison extends Activity implements OnClickListener, OnCheckedChangeListener
{
	Livraison maLiv;
	ListView listePaquets;
	List<Paquet> liste;
	CheckBox refus;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.bonlivraison);
				
		Bundle mesDonnees = this.getIntent().getExtras();
		
		if(mesDonnees != null && mesDonnees.containsKey("livraison"))
		{
        	maLiv = (Livraison) SerializeClass.deserializeObject(mesDonnees.getByteArray("livraison"));
		}

		TextView nomExp = (TextView) findViewById(R.id.bonLivNomExp);
		TextView rueExp = (TextView) findViewById(R.id.bonLivRueExp);
		TextView villeExp = (TextView) findViewById(R.id.bonLivVilleExp);
		
		TextView nbrPaquets = (TextView) findViewById(R.id.bonLivNbPaquet);

		TextView nomDest = (TextView) findViewById(R.id.bonLivNomDest);
		TextView rueDest = (TextView) findViewById(R.id.bonLivRueDest);
		TextView villeDest = (TextView) findViewById(R.id.bonLivVilleDest);
		
		refus = (CheckBox) findViewById(R.id.bonLivRefus);
		
		listePaquets = (ListView) findViewById(R.id.bonLivListePaquets);
		
		EditText commentaire = (EditText) findViewById(R.id.bonLivCommentaire);
		
		Button continuer = (Button) findViewById(R.id.bonLivContinuerBl);

		nomExp.setText(maLiv.expediteur.nom);
		rueExp.setText(maLiv.expediteur.rue);
		villeExp.setText(maLiv.expediteur.ville);
		
		nbrPaquets.setText("" + maLiv.colis.paquetList.size());
		
		nomDest.setText(maLiv.destinataire.nom);
		rueDest.setText(maLiv.destinataire.rue);
		villeDest.setText(maLiv.destinataire.ville);
		
		refus.setOnCheckedChangeListener(this);
		
		continuer.setOnClickListener(this);
		
		liste = new ArrayList<Paquet>();
		
		liste = maLiv.colis.paquetList;
				
		PaquetAdapter monAdapter = new PaquetAdapter(this, new ArrayList<Paquet>());
		listePaquets.setAdapter(monAdapter);
	}

	public void onClick(View v) {
		switch(v.getId())
		{
		case R.id.bonLivContinuerBl:
			int i = 0;
			if(refus.isChecked())
			{
				for(Paquet p : liste)
				{
					
					if(listePaquets.isEnabled())
					{
						List<Boolean> boo = SingletonPaquet.getInstance().refus;
						if(boo.get(i))
						{
							p.accepter = "non";
							
						}
						else
							p.accepter = "oui";
					}
					else
						p.accepter = "oui";
				}
			}
			
			maLiv.colis.paquetList = (ArrayList<Paquet>) liste;
			
			Bundle mesDonnees = new Bundle();
			
			mesDonnees.putByteArray("livraison", SerializeClass.serializeObject(maLiv));
			
			Intent intent = new Intent(this, Dessin.class);
			intent.putExtras(mesDonnees);
			startActivity(intent);
			
			//SingletonPaquet sP = SingletonPaquet.getInstance();
			//System.out.println(sP.refus.get(0) + " : " + sP.motif.get(0));
			//System.out.println(sP.refus.get(1) + " : " + sP.motif.get(1));
			break; 
		}
	}

	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
		// TODO Auto-generated method stub
		switch(buttonView.getId())
		{
		case R.id.bonLivRefus:
			if(buttonView.isChecked())
			{
				listePaquets.setAdapter(new PaquetAdapter(this, liste));
			}
			else
			{
				listePaquets.setAdapter(new PaquetAdapter(this,new ArrayList<Paquet>()));
			}
			break;
		}
	}
}
